package com.chat.page.login;

import com.chat.page.MyLineBorder;
import lombok.extern.slf4j.Slf4j;

import javax.swing.*;
import java.awt.*;

/**
 * @Author: 胡成
 * @Version: 0.0.1V
 * @Date: 2019/2/14
 * @Description: 登录界面
 **/
@Slf4j
public class LoginPage {

    /**
     * @Author: 胡成
     * @Date: 2019/2/14 15:22
     * @Description: 登录界面
     **/
    public static void loginPage(JFrame frame) {
        /**
         * 北部面板
         */
        JPanel panel_north=createNorthPanel();
        frame.add(panel_north,BorderLayout.NORTH);

        /**
         * 中部面板
         */
        JPanel panel_center=crateCenterPanel();
        frame.add(panel_center,BorderLayout.CENTER);

        /**
         * 西部面板
         */
        JPanel panel_west=createWestPanel();
        frame.add(panel_west,BorderLayout.WEST);

        /**
         * 南部面板
         */
        JPanel panel_south=createSouthPanel();
        frame.add(panel_south,BorderLayout.SOUTH);

        /**
         * 东部面板
         */
        JPanel pannel_east=crateEastPanel();
        frame.add(pannel_east,BorderLayout.EAST);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

//        // 创建 JLabel
//        JLabel userLabel = new JLabel("User:");
//        //这个方法定义了组件的位置。setBounds(x, y, width, height)x 和 y 指定左上角的新位置，由 width 和 height 指定新的大小。
//        userLabel.setBounds(10, 20, 80, 25);
//        panel.add(userLabel);
//        //创建文本域用于用户输入
//        JTextField userText = new JTextField(20);
//        userText.setBounds(100, 20, 165, 25);
//        panel.add(userText);
//        // 输入密码的文本域
//        JLabel passwordLabel = new JLabel("Password:");
//        passwordLabel.setBounds(10, 50, 80, 25);
//        panel.add(passwordLabel);
//        //这个类似用于输入的文本域但是输入的信息会以点号代替，用于包含密码的安全性
//        JPasswordField passwordText = new JPasswordField(20);
//        passwordText.setBounds(100, 50, 165, 25);
//        panel.add(passwordText);
//        // 创建登录按钮
//        JButton loginButton = new JButton("login");
//        loginButton.setBounds(10, 80, 80, 25);
//        panel.add(loginButton);
//        //添加事件
//        loginButton.addActionListener(e -> {
//            String username = userText.getText();
//            String password = new String(passwordText.getPassword());
//            if (username.equals("root") && password.equals("123456")) {
//                log.info("登录成功,用户名{},密码{}", username, password);
//                MainPage.mainPage(panel, frame);
//            } else {
//                log.info("用户名或密码错误");
//            }
//        });
    }

    /**
     * 创建北部面板
     * @return
     */
    public static JPanel createNorthPanel(){
        JPanel panel=new JPanel();
        panel.setLayout(null);
        panel.setPreferredSize(new Dimension(0, 140));

        ImageIcon image=new ImageIcon("images/back.gif");
        JLabel background=new JLabel(image);
        background.setBounds(0,0,420,180);
        panel.add(background);
        return panel;
    }

    /**
     * 创建西部面板
     */
    public static JPanel createWestPanel(){
        JPanel panel=new JPanel();
        panel.setLayout(null);
        panel.setPreferredSize(new Dimension(130,0));

        ImageIcon image=new ImageIcon("images/HeadImage.png");
        JLabel  background=new JLabel(image);

        background.setBounds(0, 0, 120, 120);

        panel.add(background);
        return panel;
    }

    /**
     * 创建南部面板
     */
    public static JPanel createSouthPanel(){
        JPanel panel=new JPanel();
        panel.setLayout(null);
        panel.setPreferredSize(new Dimension(0, 50));
        MyLineBorder myLineBorder = new MyLineBorder(new Color(192, 192, 192), 1 , true);

        /**
         * 登录按钮
         */
        ImageIcon image=new ImageIcon("images/login_button.png");
        JButton btn=new JButton(image);
        btn.setBounds(130,0,image.getIconWidth()-10,image.getIconHeight()-10);
        btn.setBorder(myLineBorder);
        panel.add(btn);
        return panel;
    }

    /**
     * 创建中部面板
     */
    public static JPanel crateCenterPanel(){
        JPanel panel=new JPanel();
        panel.setLayout(null);
        panel.setPreferredSize(new Dimension(0, 180));
        MyLineBorder myLineBorder = new MyLineBorder(new Color(192, 192, 192), 1 , true);

        /**
         * 用户名框
         */
        JTextField username=new JTextField();
        username.setBounds(0, 15, 175, 30);
        username.setBorder(myLineBorder);

        /**
         * 密码名框
         */
        JPasswordField password=new JPasswordField(JPasswordField.LEFT);
        password.setBounds(0, 44, 175, 30);
        password.setBorder(myLineBorder);


        JCheckBox rember_pwd=new JCheckBox("记住密码");
        rember_pwd.setBounds(0, 80, 80, 20);

        JCheckBox login_auto=new JCheckBox("自动登录");
        login_auto.setBounds(100, 80, 80, 20);


        panel.add(rember_pwd);
        panel.add(username);
        panel.add(password);
        panel.add(login_auto);
        return panel;
    }

    /**
     * 创建东部面板
     */
    public static JPanel crateEastPanel(){
        JPanel panel=new JPanel();
        panel.setLayout(null);
        panel.setPreferredSize(new Dimension(100, 0));

        JLabel regeist=new JLabel("注册账号");
        regeist.setForeground(new Color(100,149,238));
        regeist.setBounds(0, 13, 60, 30);
        regeist.setFont(new Font("宋体",0,12));

        JLabel regetpwd=new JLabel("找回密码");
        regetpwd.setForeground(new Color(100,149,238));
        regetpwd.setBounds(0, 43, 60, 30);
        regetpwd.setFont(new Font("宋体",0,12));

        panel.add(regetpwd);
        panel.add(regeist);
        return panel;
    }
}
